package com.xiaoc.bulldozer.common.service;

import java.util.List;

import com.xiaoc.bulldozer.common.dto.ConvertWeixinUserDto;
import com.xiaoc.bulldozer.common.dto.ConvertWeixinUserQueryDto;
import com.xiaoc.bulldozer.common.model.ConvertWeixinUser;

/**
 * ConvertWeixinUser Service 接口
 * 
 * @author Danfo Yam
 * 
 * @date 2018-09-06 13:29:52
 */
public interface ConvertWeixinUserService {

    /**
     * 根据条件查询ConvertWeixinUser数量
     
     * @param ConvertWeixinUserQueryDto
     *
     * @return 满足查询条件的记录数量
     */
    public Integer getConvertWeixinUserCountByCondition(ConvertWeixinUserQueryDto convertWeixinUserQueryDto);
    
    /**
     * 根据条件分页查询ConvertWeixinUser列表
     *
     * @param ConvertWeixinUserQueryDto
     *
     * @return 满足查询条件的ConvertWeixinUser列表
     */
    public List<ConvertWeixinUser> getConvertWeixinUserListByCondition(ConvertWeixinUserQueryDto convertWeixinUserQueryDto);
    
    /**
     * 根据Id获取ConvertWeixinUser
     * 
     * @param id
     *
     * @return ConvertWeixinUser对象
     */
    public ConvertWeixinUser getConvertWeixinUserById(Integer id);

    /**
     * 获取所有ConvertWeixinUser列表
     * 
     * @return ConvertWeixinUser列表
     */
    public List<ConvertWeixinUser> getAllConvertWeixinUserList();

    /**
     * 新增ConvertWeixinUser
     * 
     * @param convertWeixinUser
     *
     * @return void
     */
    public void save(ConvertWeixinUser convertWeixinUser);

    /**
     * 更新ConvertWeixinUser
     * 
     * @param ConvertWeixinUser
     *
     * @return void
     */
    public void update(ConvertWeixinUser convertWeixinUser);

    /**
     * 根据Id删除ConvertWeixinUser
     * 
     * @param id
     *
     * @return void
     */
    public void deleteById(Integer id);
    
    /**
     * 根据openId获取微信用户信息
     * 
     * @param openId
     * @return
     */
    public ConvertWeixinUserDto getConvertWeixinUserByOpenId(String openId);
    
    /**
     * 从缓存中获取ConvertWeixinUserDto
     * 
     * @param sessionId
     * @return
     */
    public ConvertWeixinUserDto getConvertWeixinUserDtoBySessionId(String sessionId);

    /**
     * 将ConvertWeixinUserDto放入缓存中
     * 
     * @param sessionId
     * @param ConvertWeixinUserDto
     */
    public void putConvertWeixinUserDto(String sessionId, ConvertWeixinUserDto convertWeixinUserDto);
    
    /**
     * 根据手机号获取微信用户信息
     * 
     * @param phoneNumber
     * @return
     */
    public List<ConvertWeixinUser> getConvertWeixinUserListByPhoneNumber(String phoneNumber);

}
